<?php

namespace Sisesporte\Entity;

use Doctrine\ORM\Mapping as ORM,
        Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="contato")
 * @ORM\Entity(repositoryClass="Sisesporte\Repository\ContatoRepository")
 */
class Contato {

    public function __construct($options = null) {
        if(!is_null($options))
            Configurator::configure($this, $options);
        $this->endereco = new ArrayCollection;
    }

    /**
     * @var $sqContato
     * @ORM\Column(name="sq_contato", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $sqContato;

    /**
     * @var Sisesporte\Entity\Pessoa $sqPessoa
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Pessoa", inversedBy="sq_pessoa")
     * @ORM\JoinColumn(name="sq_pessoa", referencedColumnName="sq_pessoa")
     */
    protected $sqPessoa;

    /**
     * @var string $noContato
     * @ORM\Column(name="no_contato", type="text", nullable=false)
     */
    protected $noContato;

    /**
     * @var string $noTelefone
     * @ORM\Column(name="no_telefone", type="text", nullable=true)
     */
    protected $noTelefone;

    /**
     * @var string $stTipoContato
     * @ORM\Column(name="st_tipo_contato", type="text", nullable=false)
     */
    protected $stTipoContato;

    /**
     * @var Sisesporte\Entity\Parentesco $sqParentesco
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Parentesco", inversedBy="sq_parentesco")
     * @ORM\JoinColumn(name="sq_parentesco", referencedColumnName="sq_parentesco")
     */
    protected $sqParentesco;

    /**
     * @var string $deEmail
     * @ORM\Column(name="de_email", type="text", nullable=true)
     */
    protected $deEmail;

    /**
     * @var boolean $stAtivo
     * @ORM\Column(name="st_ativo", type="boolean", nullable=true)
     */
    protected $stAtivo;

    /**
     * @ORM\OneToMany(targetEntity="Sisesporte\Entity\Endereco", mappedBy="$sq_contato")
     */
    protected $endereco;

    public function getSqContato() {
        return $this->sqContato;
    }

    public function getSqPessoa() {
        return $this->sqPessoa;
    }

    public function setSqPessoa(Pessoa $sqPessoa) {
        $this->sqPessoa = $sqPessoa;
        return $this;
    }

    public function getNoContato() {
        return $this->noContato;
    }

    public function setNoContato($noContato) {
        $this->noContato = $noContato;
        return $this;
    }

    public function getNoTelefone() {
        return $this->noTelefone;
    }

    public function setNoTelefone($noTelefone) {
        $this->noTelefone = $noTelefone;
        return $this;
    }

    public function getStTipoContato() {
        return $this->stTipoContato;
    }

    public function setStTipoContato($stTipoContato) {
        $this->stTipoContato = $stTipoContato;
        return $this;
    }

    public function getSqParentesco() {
        return $this->sqParentesco;
    }

    public function setSqParentesco(Parentesco $sqParentesco) {
        $this->sqParentesco = $sqParentesco;
        return $this;
    }

    public function getDeEmail() {
        return $this->deEmail;
    }

    public function setDeEmail($deEmail) {
        $this->deEmail = $deEmail;
        return $this;
    }

    public function getStAtivo() {
        return $this->stAtivo;
    }

    public function setStAtivo($stAtivo) {
        $this->stAtivo = $stAtivo;
        return $this;
    }

    public function getEndereco() {
        return $this->endereco;
    }

    public function __toString() {
        return $this->noContato;
    }

    public function toArray() {
        return array(
            'sqContato' => $this->getSqContato(),
            'sqPessoa' => $this->getSqPessoa()->getSqPessoa(),
            'noContato' => $this->getNoContato(),
            'noTelefone' => $this->getNoTelefone(),
            'stTipoContato' => $this->getStTipoContato(),
            'sqParentesco' => $this->getSqParentesco()->getSqParentesco(),
            'deEmail' => $this->getDeEmail(),
            'stAtivo' => $this->getStAtivo(),
            'endereco'=>  $this->getEndereco()
        );
    }

}
